<!DOCTYPE html>
<html lang="en-us">
  <head>
    <script src="https://www.googletagmanager.com/gtm.js?id=GTM-MX6DBN9" async="async"></script>
    <script src="/static/hash-%%etag%%/js/gtm.js" async="async"></script>
    <meta charset="utf-8"/>
    <meta http-equiv="x-ua-compatible" content="ie=edge"/>
    <meta name="viewport" content="width=device-width, initial-scale=1"/>
    <meta name="twitter:card" content="summary"/>
    <meta name="twitter:site" content="@dart_lang"/>
    <meta name="twitter:description" content="Pub is the package manager for the Dart programming language, containing reusable libraries &amp; packages for Flutter and general Dart programs."/>
    <meta name="twitter:image" content="https://pub.dev/static/hash-%%etag%%/img/pub-dev-icon-cover-image.png"/>
    <meta property="og:type" content="website"/>
    <meta property="og:site_name" content="Dart packages"/>
    <meta property="og:title" content="The official repository for Dart and Flutter packages."/>
    <meta property="og:description" content="Pub is the package manager for the Dart programming language, containing reusable libraries &amp; packages for Flutter and general Dart programs."/>
    <meta property="og:image" content="https://pub.dev/static/hash-%%etag%%/img/pub-dev-icon-cover-image.png"/>
    <meta property="og:url" content="https://pub.dev/"/>
    <title>The official repository for Dart and Flutter packages.</title>
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&amp;family=Google+Sans+Display:wght@400&amp;family=Google+Sans+Text:wght@400;500;700&amp;family=Google+Sans+Mono:wght@400;700&amp;display=swap"/>
    <link rel="shortcut icon" href="/favicon.ico?hash=mocked_hash_985685822"/>
    <meta rel="apple-touch-icon" href="/static/hash-%%etag%%/img/apple-touch-icon.png"/>
    <meta rel="apple-touch-icon-precomposed" href="/static/hash-%%etag%%/img/apple-touch-icon.png"/>
    <link rel="stylesheet" href="https://www.gstatic.com/glue/v25_0/ccb.min.css"/>
    <link rel="search" type="application/opensearchdescription+xml" title="Dart packages" href="/osd.xml"/>
    <link rel="canonical" href="https://pub.dev/"/>
    <meta name="description" content="Pub is the package manager for the Dart programming language, containing reusable libraries &amp; packages for Flutter and general Dart programs."/>
    <link rel="alternate" type="application/atom+xml" title="Recently published packages on pub.dev" href="/feed.atom"/>
    <link rel="stylesheet" type="text/css" href="/static/hash-%%etag%%/material/bundle/styles.css"/>
    <link rel="stylesheet" type="text/css" href="/static/hash-%%etag%%/css/style.css"/>
    <script src="/static/hash-%%etag%%/material/bundle/script.min.js" defer="defer"></script>
    <script src="/static/hash-%%etag%%/js/script.dart.js" defer="defer"></script>
    <script src="https://www.gstatic.com/brandstudio/kato/cookie_choice_component/cookie_consent_bar.v3.js" defer="defer" data-autoload-cookie-consent-bar="true"></script>
    <link rel="preload" href="/static/hash-%%etag%%/img/hero-bg-static.svg" as="image"/>
    <link rel="preload" href="/static/hash-%%etag%%/img/square-bg-full-2x.webp" as="image"/>
  </head>
  <body class="page-landing light-theme">
    <script src="/static/hash-%%etag%%/js/dark-init.js"></script>
    <noscript>&lt;iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MX6DBN9" height="0" width="0" style="display:none;visibility:hidden">&lt;/iframe></noscript>
    <div class="site-header">
      <button class="hamburger" aria-label="menu toggle"></button>
      <div class="site-header-space"></div>
      <div class="site-header-mask"></div>
      <nav class="site-header-nav scroll-container">
        <div class="nav-login-container">
          <button id="-account-login" class="nav-main-button link">Sign in</button>
        </div>
        <div class="nav-container nav-help-container hoverable">
          <button class="nav-main-button">Help</button>
          <div class="nav-hover-popup">
            <div class="nav-table-columns">
              <div class="nav-table-column">
                <h3>pub.dev</h3>
                <a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a>
                <a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a>
              </div>
              <div class="nav-table-column">
                <h3>Flutter</h3>
                <a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a>
                <a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a>
                <a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a>
              </div>
              <div class="nav-table-column">
                <h3>Dart</h3>
                <a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a>
                <a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a>
              </div>
            </div>
          </div>
        </div>
        <div class="nav-container nav-help-container-mobile foldable">
          <h3 class="foldable-button">
            pub.dev
            <img class="foldable-icon" src="/static/hash-%%etag%%/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/>
          </h3>
          <div class="foldable-content">
            <a class="nav-link" href="/help/search" rel="noopener" target="_blank">Searching for packages</a>
            <a class="nav-link" href="/help/scoring" rel="noopener" target="_blank">Package scoring and pub points</a>
          </div>
        </div>
        <div class="nav-container nav-help-container-mobile foldable">
          <h3 class="foldable-button">
            Flutter
            <img class="foldable-icon" src="/static/hash-%%etag%%/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/>
          </h3>
          <div class="foldable-content">
            <a class="nav-link" href="https://flutter.dev/using-packages/" rel="noopener" target="_blank">Using packages</a>
            <a class="nav-link" href="https://flutter.dev/developing-packages/" rel="noopener" target="_blank">Developing packages and plugins</a>
            <a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a>
          </div>
        </div>
        <div class="nav-container nav-help-container-mobile foldable">
          <h3 class="foldable-button">
            Dart
            <img class="foldable-icon" src="/static/hash-%%etag%%/img/nav-mobile-foldable-icon.svg" alt="toggle folding of the section" width="13" height="6"/>
          </h3>
          <div class="foldable-content">
            <a class="nav-link" href="https://dart.dev/guides/packages" rel="noopener" target="_blank">Using packages</a>
            <a class="nav-link" href="https://dart.dev/tools/pub/publishing" rel="noopener" target="_blank">Publishing a package</a>
          </div>
        </div>
      </nav>
      <button class="-pub-theme-toggle" aria-label="light/dark theme toggle"></button>
    </div>
    <div id="banner-container"></div>
    <div class="_banner-bg">
      <div class="container home-banner">
        <h2 class="_visuallyhidden">pub.dev package manager</h2>
        <img class="logo" src="/static/hash-%%etag%%/img/pub-dev-logo.svg" alt="" width="328" height="70" role="presentation"/>
        <form class="search-bar banner-item" action="/packages" autocomplete="off">
          <input class="input" type="search" name="q" placeholder="Search packages" autocomplete="off" autofocus="autofocus" title="Search" data-widget="completion" data-completion-src="/api/search-input-completion-data" data-completion-class="search-completion"/>
          <span class="icon"></span>
        </form>
        <p class="text">
          The official package repository for
          <a href="https://dart.dev/" rel="noopener" target="_blank">Dart</a>
          and
          <a href="https://flutter.dev/" rel="noopener" target="_blank">Flutter</a>
          apps.
        </p>
        <img src="/static/hash-%%etag%%/img/supported-by-google-2x.png" alt="Supported by Google" width="218" height="36"/>
      </div>
    </div>
    <main class="landing-main">
      <div class="home-block home-block-ff">
        <div class="home-block-content">
          <h1 class="home-block-title">Flutter Favorites</h1>
          <p class="home-block-context-info">
            Some of the packages that demonstrate the
            <a href="https://flutter.dev/docs/development/packages-and-plugins/favorites" rel="noopener" target="_blank">highest levels of quality</a>
            , selected by the Flutter Ecosystem Committee
          </p>
          <div class="mini-list">
            <div class="mini-list-item">
              <a class="mini-list-item-title" href="/packages/flutter_titanium" data-ga-click-event="landing-flutter-favorites-card-title">
                <span class="mini-list-item-title-text" role="heading" aria-level="2">flutter_titanium</span>
              </a>
              <div class="mini-list-item-body">
                <p class="mini-list-item-description">flutter_titanium is awesome</p>
              </div>
              <div class="mini-list-item-footer"></div>
            </div>
          </div>
          <div class="home-block-view-all">
            <a class="home-block-view-all-link" href="/packages?q=is%3Aflutter-favorite" rel="nofollow" title="Search Flutter Favorites packages" data-ga-click-event="landing-flutter-favorites-view-all">View all</a>
          </div>
        </div>
      </div>
      <div class="home-block home-block-mp">
        <div class="home-block-image">
          <img src="/static/hash-%%etag%%/img/landing-01.webp" alt="" width="351" height="240" loading="lazy" role="presentation"/>
        </div>
        <div class="home-block-content">
          <h1 class="home-block-title">Most popular packages</h1>
          <p class="home-block-context-info">Some of the most downloaded packages over the past 30 days</p>
          <div class="mini-list">
            <div class="mini-list-item">
              <a class="mini-list-item-title" href="/packages/neon" data-ga-click-event="landing-most-popular-card-title">
                <span class="mini-list-item-title-text" role="heading" aria-level="2">neon</span>
              </a>
              <div class="mini-list-item-body">
                <p class="mini-list-item-description">neon is awesome</p>
              </div>
              <div class="mini-list-item-footer">
                <div class="mini-list-item-publisher">
                  <img class="publisher-badge filter-invert-on-dark" src="/static/hash-%%etag%%/img/material-icon-verified.svg" alt="verified publisher" width="14" height="14" title="Published by a pub.dev verified publisher"/>
                  <a class="publisher-link" href="/publishers/example.com" data-ga-click-event="landing-most-popular-card-publisher">example.com</a>
                </div>
              </div>
            </div>
            <div class="mini-list-item">
              <a class="mini-list-item-title" href="/packages/oxygen" data-ga-click-event="landing-most-popular-card-title">
                <span class="mini-list-item-title-text" role="heading" aria-level="2">oxygen</span>
              </a>
              <div class="mini-list-item-body">
                <p class="mini-list-item-description">oxygen is awesome</p>
              </div>
              <div class="mini-list-item-footer"></div>
            </div>
          </div>
          <div class="home-block-view-all">
            <a class="home-block-view-all-link" href="/packages?sort=downloads" rel="nofollow" title="Search popular packages" data-ga-click-event="landing-most-popular-view-all">View all</a>
          </div>
        </div>
      </div>
      <div class="home-block home-block-pow">
        <div class="home-block-content">
          <h1 class="home-block-title">Package of the Week</h1>
          <p class="home-block-context-info">Package of the Week is a series of quick, animated videos, each of which covers a particular package</p>
          <div class="landing-pow-list">
            <div class="pow-video">
              <a href="https://youtube.com/watch?v=video-id&amp;list=PLjxrf2q8roU1quF6ny8oFHJ2gBdrYN_AK" rel="noopener" target="_blank" title="POW description" data-ga-click-event="package-of-the-week-video">
                <img class="pow-video-thumbnail" src="http://youtube.com/image/thumbnail?i=123&amp;s=4" alt="POW Title" width="260" height="195" loading="lazy"/>
                <div class="pow-video-overlay">
                  <img class="pow-video-overlay-img-active" src="/static/hash-%%etag%%/img/youtube-play-red.png" alt="" width="76" height="53" loading="lazy" role="presentation"/>
                  <img class="pow-video-overlay-img-inactive" src="/static/hash-%%etag%%/img/youtube-play-black.png" alt="" width="76" height="53" loading="lazy" role="presentation"/>
                </div>
              </a>
            </div>
          </div>
          <div class="home-block-view-all">
            <a class="home-block-view-all-link" href="https://www.youtube.com/playlist?list=PLjxrf2q8roU1quF6ny8oFHJ2gBdrYN_AK" rel="noopener nofollow" target="_blank" title="Visit the YouTube playlist" data-ga-click-event="package-of-the-week-playlist">View playlist</a>
          </div>
        </div>
      </div>
    </main>
    <footer class="site-footer">
      <a class="link" href="https://dart.dev/">Dart language</a>
      <a class="link sep" href="/policy">Policy</a>
      <a class="link sep" href="https://www.google.com/intl/en/policies/terms/">Terms</a>
      <a class="link sep" href="https://developers.google.com/terms/">API Terms</a>
      <a class="link sep" href="/security">Security</a>
      <a class="link sep" href="https://www.google.com/intl/en/policies/privacy/">Privacy</a>
      <a class="link sep" href="/help">Help</a>
      <a class="link icon sep" href="/feed.atom">
        <img class="inline-icon" src="/static/hash-%%etag%%/img/rss-feed-icon.svg" alt="RSS" width="20" height="20" title="RSS/atom feed"/>
      </a>
      <a class="link icon github_issue" href="https://github.com/dart-lang/pub-dev/issues/new">
        <img class="inline-icon" src="/static/hash-%%etag%%/img/bug-report-white-96px.png" alt="bug report" width="20" height="20" title="Report an issue with this site"/>
      </a>
    </footer>
    <script type="application/ld+json">{"@context":"http\u003a\u002f\u002fschema.org","@type":"WebSite","url":"https\u003a\u002f\u002fpub.dev\u002f","potentialAction":{"@type":"SearchAction","target":"https\u003a\u002f\u002fpub.dev\u002fpackages\u003fq\u003d\u007bsearch\u005fterm\u005fstring\u007d","query-input":"required name\u003dsearch\u005fterm\u005fstring"}}</script>
  </body>
</html>
